<p>
  Implement a GPU program that, for <code>N</code> three-dimensional points stored on the device, fills <code>indices[i]</code> with the index <code>j ≠ i</code> of the point closest to <code>points[i]</code>. Comparing <em>squared</em> Euclidean distance is sufficient—you do <strong>not</strong> need to compute square-roots.
</p>

<h2>Implementation Requirements</h2>
<ul>
  <li>The <code>solve</code> function signature must remain unchanged</li>
  <li>External libraries are not permitted</li>
  <li>The final result must be stored in the <code>indices</code> array</li>
</ul>

<h2>Example 1:</h2>
<pre>
Input:  points  = [(0,0,0), (1,0,0), (5,5,5)]
        indices = [-1, -1, -1]
        N       = 3
Output: indices = [1, 0, 1]   # 0⇆1 are nearest, 2 is closest to 1</pre>

<h2>Constraints</h2>
<ul>
  <li>1 ≤ <code>N</code> ≤ 100,000</li>
  <li>Coordinates are 32-bit floats in the range [-1000, 1000]</li>
</ul>
